1. Field of the Invention
This invention relates in general to an input/output system, and more particularly to a method, apparatus and program storage device for automatically presenting status from a host bus adapter until an error is detected.
2. Description of Related Art
In a data processing system, communication adapters and Input/Output (I/O) controllers are provided to transfer data between a host system and a network or peripheral device. The memory and processor of the host system are coupled to the adapter or controller by a system or I/O bus or by a network.
As the central processing units in host systems have become faster, the difference between the speed of processor operations involving local registers or cache memory, and the speed of accesses between the processor of the host system and main memory or peripheral devices, has been magnified. As a result, in order for data processing systems to better utilize the faster processors, there is a need to provide more efficient methods of transferring data between the host system and networks or peripheral devices.
Data is typically transmitted back and forth between a host computer system and peripheral devices, such as disk drives, tape drives, or printers, over a data communication bus. The data communication bus couples the host and the peripheral devices together and enables the exchange of data between the system and the peripheral devices. One type of data communication bus is a Small Computer System Interconnect (SCSI) data bus. A SCSI data bus can be configured in different ways and has several modes of operation.
The SCSI protocol specifies communication between an initiator, or device that issues SCSI commands, and a target, a device that executes SCSI commands. The SCSI data bus is connected to the initiator via a host adapter and is connected to target devices via device controllers. Each device controller is matched to the specific type of device connected to the SCSI bus.
When information is transferred back and forth between the initiator and any one of the plurality of target devices, a handshaking protocol is used to control the transfer of data on the data bus connected therebetween.
There are many Upper Level Protocols (ULP) which maps SCSI to some physical interface. FCP is a protocol which maps SCSI to Fibre Channel. iSCSI maps SCSI to Ethernet. FCP, iSCSI, and other protocols talk in terms of an initiator and a target. An initiator is an agent that initiates an exchange and issues a SCSI command to a target.
A SCSI I/O launched by the operating system may initiate, for example, an FCP exchange between the host and target using command frames known as information units (IUs). However, as suggested above, FCP is just one example. Within the exchange session, groups of frames comprising one or more sequences would be used to transport data between an initiator and a target. The target would reply that it is ready. The initiator responds by issuing a data descriptor information unit. The initiator then sends one or more solicited data information units. The target responds by issuing a command status information unit indicating completion of the send request.
The initiation of the FCP exchange with the target replying, the initiator response with data descriptor information and the target issuing command status may be combined in different ways to make a protocol more efficient. The target must then accept the data and issue a response of some kind. If no errors or exceptions are received then the response would indicate normal status.
A typical target is some kind of storage system. For example, a target may be a Host Bus Adapter (HBA), which handles the protocol communicating with a host like a PC or a specialized piece of hardware. The HBA will notify the host of SCSI commands and will be told from the host where to get or put the data.
For a write command, the HBA must notify the host that the initiator wants to perform a write operation. If the host is a complex storage system, it will need to determine if the sectors being written are already in the write cache and precisely where the data is to be written. The host may need to do some additional formatting on the data as well. The host will communicate with the HBA where to put the data and the HBA then will store the data.
In today's environment, the host will need to communicate to the HBA that the operation was successful and assuming that the HBA did not detect an error then deliver good status back in the response. Read commands require similar processing and handshake signaling.
This additional interaction between the host and the HBA is a significant amount of processing and handshaking for both the host and the HBA. However, the overhead associated with the additional processing and handshake signaling reduces system performance.
It can be seen that there is a need for a method, apparatus and program storage device for automatically presenting status from a host bus adapter until an error is detected.